Skip to content

feat(reports): fleet framework catalog endpoint + framework picker (B0)#640

Merged
remyluslosius merged 2 commits into
mainfrom
feat/reports-b0-framework-catalog
Jun 22, 2026
Merged

feat(reports): fleet framework catalog endpoint + framework picker (B0)#640
remyluslosius merged 2 commits into
mainfrom
feat/reports-b0-framework-catalog

Conversation

@remyluslosius

Copy link
Copy Markdown
Contributor

Reports Phase B0 (reports_design.md §12) — the first Phase B slice, and it retroactively closes the A1 deferred framework lens.

What

  • GET /api/v1/reports/frameworks (host:read) returns the fleet framework catalog: distinct framework_refs keys across host_rule_state, each with a DISTINCT-rule count, ordered count-desc then key-asc. Shape {frameworks:[{framework,rule_count}]} (empty array when nothing is scanned). Backed by report.Service.Frameworks (jsonb_object_keys).
  • Frontend: a framework-lens picker beside the group scope picker — the lens I deferred in A1 for lack of a catalog — populated from the new endpoint. The generate body now carries group_id and/or framework.

This also sets up the Phase B attestation kind's framework selection.

SDD

  • api-reports v1.6.0 — C-12 + AC-17 (service catalog: distinct-rule counts, ordering) + AC-18 (endpoint shape + RBAC).
  • frontend-reports v1.5.0 — C-08 + AC-09 (the framework picker).

Validation

gofmt/vet/build clean; go mod tidy no-op; specter check 111; api-reports 18/18, frontend-reports 9/9 (100%); report + server frameworks tests + full frontend suite 328 green.

Reports Phase B0 (docs/engineering/reports_design.md §12). The first
Phase B slice, and it retroactively closes the A1 deferred framework
lens.

- GET /api/v1/reports/frameworks (host:read) returns the fleet framework
  catalog: distinct framework_refs keys across host_rule_state, each with
  a DISTINCT-rule count, ordered count desc then key asc
  ({frameworks:[{framework,rule_count}]}; empty array when nothing is
  scanned). report.Service.Frameworks via jsonb_object_keys.
- Frontend: a framework-lens picker beside the group scope picker
  (deferred in A1 for lack of a catalog), populated from the new
  endpoint; the generate body now carries group_id and/or framework.

SDD: api-reports v1.6.0 (C-12, AC-17 service + AC-18 endpoint),
frontend-reports v1.5.0 (C-08, AC-09). gofmt/vet/build clean; go mod
tidy no-op; specter 111 (api-reports 18/18, frontend-reports 9/9, 100%);
report + server frameworks tests + full frontend suite (328) green.
@remyluslosius remyluslosius merged commit 3d2abfb into main Jun 22, 2026
13 checks passed
@remyluslosius remyluslosius deleted the feat/reports-b0-framework-catalog branch June 22, 2026 01:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant